home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Apple Guide / Engineering / Context Check Modules / Control Strip CC / IsControlStrip.c next >
Encoding:
C/C++ Source or Header  |  1994-05-02  |  1.5 KB  |  77 lines  |  [TEXT/KAHL]

  1. /****************************************/
  2.     
  3. /*    IsControlStrip.c                    */
  4. /*    Author:             Shemin Gau, IP    */
  5. /*    Revision History:    03/15/94        */
  6.  
  7. /****************************************/
  8.  
  9.  
  10. #include <Resources.h>
  11. #include <Types.h>
  12. #include <Files.h>
  13. #include <String.h>
  14. #include <Memory.h>
  15. #include <Packages.h>
  16. #include <GestaltEqu.h>
  17. #include <CType.h>
  18. #include <OSUtils.h>
  19. #include <ToolUtils.h>
  20. #include <Errors.h>
  21.  
  22.  
  23.  
  24. /*    gestalt selector    */
  25. #define    gestaltStatusBarAttr    'sdev'
  26. #define    gestaltStatusBarExists    0
  27.  
  28.  
  29. /*    function prototype    */
  30. Boolean ControlStripIsVisible();
  31. pascal Boolean SBIsStatusBarVisible()
  32.     = {0x7000,0xAAF2};
  33. OSErr SetContextResult(void* theData, Size theSize, Ptr* outMessage, Size* outSize);
  34.  
  35.  
  36. pascal OSErr main(char msg, Size inSize, void* outMessage, Size* outSize, Handle ignoreMe)
  37. {        
  38.     OSErr        myErr = noErr;
  39.     Boolean        result = false;
  40.     
  41.     
  42.     if (ControlStripIsVisible()) {
  43.         result = true;
  44.     }    
  45.     myErr = SetContextResult(&result, sizeof(Boolean), outMessage, outSize);
  46.     return(myErr);
  47. }
  48.  
  49.  
  50. Boolean ControlStripIsVisible() 
  51. {
  52.     long    attributes;
  53.  
  54.     if ((Gestalt(gestaltStatusBarAttr, &attributes) == noErr) && (attributes & (1<<gestaltStatusBarExists)) &&
  55.         SBIsStatusBarVisible())
  56.         return (true);
  57.     else
  58.         return (false);
  59. }
  60.  
  61.  
  62. OSErr SetContextResult(void* theData, Size theSize, Ptr* outMessage, Size* outSize)
  63. {
  64.     Ptr    p;
  65.     
  66.     if (p = NewPtr(theSize)) {
  67.         BlockMove(theData, p, theSize);
  68.         
  69.         *outSize = theSize;
  70.         *outMessage    = p;
  71.         
  72.         return(noErr);
  73.     } else {
  74.         return(MemError());
  75.     }
  76. }
  77.